﻿#region 作者和版权
/*************************************************************************************
      * CLR 版本:       4.0.30319.42000
      * 类 名 称:       SerializeHelper
      * 机器名称:       PFN
      * 命名空间:       Service.Spsofts.Com.IO
      * 文 件 名:       SerializeHelper
      * 创建时间:       4/14/2016 11:51:22 PM
      * 作    者:       彭飞
      * 版    权:    SerializeHelper说明：本代码版权归锐点科技所有，使用时必须带上锐点科技地址 All Rights Reserved (C)2012- 2016 
      * 签    名:       To be or not, it is not a problem !
      * 网    站:       http://www.spsofts.com
      * 邮    箱:       djdnmq@spsofts.com  
      * 唯一标识：    63816db3-dbb0-4383-9f1a-2e2f48d63dca  
   *
   * 登录用户:       pf
   * 所 属 域:       pfn

  * 创建年份:       2016
      * 修改时间:
      * 修 改 人:
      * 
      ************************************************************************************/
#endregion
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace Service.Spsofts.Com.IO
{
    public static class SerializeHelper
    {
        private static readonly XmlSerializerNamespaces Namespaces = new XmlSerializerNamespaces();

        static SerializeHelper()
        {
            //去掉 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            Namespaces.Add(string.Empty, string.Empty);
        }

        public static string SerializeXml<T>(T obj)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            using (MemoryStream stream = new MemoryStream())
            {
                serializer.Serialize(stream, obj, Namespaces);
                return Encoding.UTF8.GetString(stream.ToArray());
            }
        }

        public static T DeserializeXml<T>(string obj)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            using (StringReader reader = new StringReader(obj))
            {
                return (T)serializer.Deserialize(reader);
            }
        }
    }
}
